Method of searching machine learning model for io load prediction in use of versioning information

ABSTRACT

Example implementations described herein are directed to searching ML models to facilitate IO load prediction. Even if there is no existing ML model applicable to the underlying container, example implementations described herein obtain the ML model for the nearest container. Through such example implementations, the underlying systems can reduce the total ML models maintained for the prediction of IO load and can enhance ML models with enough learning data for each ML model.

BACKGROUND Field

The present disclosure is directed to Information Technology (IT)systems, and more specifically, to conducting Input/Output (IO) loadprediction through use of machine learning (ML) implementations.

Related Art

The needs of IT system users and system engineers in recent yearsinvolve agile updates of customer applications in order to capturesocial changes (e.g., container restart 10 times/day, and so on).However, the IT operations manager must check for IT system availabilityprior to conducting any operation to the application. In particular,some operations such as storage IO load forecasting by IT operationsmanagers have become a bottleneck and prevent agility.

In a related art implementation, there is a storage management methodfor relocating data based on a prediction model created by machinelearning data read requests and data write requests. In another relatedart implementation, there is a management server that acquires storageand application information indicating a past IO load on the storagearea. The management server estimates the IO load on the storage area bythe application based on the storage and application information toobtain an estimated value.

SUMMARY

In example implementations described herein, machine learning techniquesare applied to predict IO load and prevent application performancefailure.

Aspects of the present disclosure can include a method, involvingdetermining, from a repository including a plurality of machine learning(ML) models, each of the plurality of ML models configured to conductperformance prediction, a ML model from the plurality of ML models toconduct the performance prediction for a container implemented on aserver, the determining the ML model including searching the repositorybased on a version tree of the container; and executing the ML modelfrom the plurality of ML models to conduct the performance predictionfor the container implemented in the server.

Aspects of the present disclosure can further include a non-transitorycomputer readable medium, storing instructions for executing a process,the instructions involving determining, from a repository including aplurality of machine learning (ML) models, each of the plurality of MLmodels configured to conduct performance prediction, a ML model from theplurality of ML models to conduct the performance prediction for acontainer implemented on a server, the determining the ML modelincluding searching the repository based on a version tree of thecontainer; and executing the ML model from the plurality of ML models toconduct the performance prediction for the container implemented in theserver.

Aspects of the present disclosure can further involve a server, whichcan include a processor, configured to determine, from a repositoryincluding a plurality of machine learning (ML) models, each of theplurality of ML models configured to conduct performance prediction, aML model from the plurality of ML models to conduct the performanceprediction for a container implemented on the server, by searching therepository based on a version tree of the container; and execute the MLmodel from the plurality of ML models to conduct the performanceprediction for the container implemented in the server.

Aspects of the present disclosure can include a system, involving meansfor determining, from a repository including a plurality of machinelearning (ML) models, each of the plurality of ML models configured toconduct performance prediction, a ML model from the plurality of MLmodels to conduct the IO prediction for a container implemented on aserver, the means for determining the ML model involving means forsearching the repository based on a version tree of the container; andexecuting the ML model from the plurality of ML models to conduct theperformance prediction for the container implemented in the server.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 illustrates a machine learning application system for forecast IOload, in accordance with an example implementation.

FIG. 2 illustrates an example of an ML model predicting IO load, inaccordance with an example implementation.

FIG. 3 illustrates an example use case of the searching function, inaccordance with an example implementation.

FIG. 4 illustrates an example of the flow of the searching function, inaccordance with an example implementation.

FIG. 5 shows an example of the threshold judgement process, inaccordance with an example implementation.

FIG. 6 illustrates an example computing environment with an examplecomputer device suitable for use in some example implementations.

DETAILED DESCRIPTION

The following detailed description provides details of the figures andexample implementations of the present application. Reference numeralsand descriptions of redundant elements between figures are omitted forclarity. Terms used throughout the description are provided as examplesand are not intended to be limiting. For example, the use of the term“automatic” may involve fully automatic or semi-automaticimplementations involving user or administrator control over certainaspects of the implementation, depending on the desired implementationof one of ordinary skill in the art practicing implementations of thepresent application. Selection can be conducted by a user through a userinterface or other input means, or can be implemented through a desiredalgorithm. Example implementations as described herein can be utilizedeither singularly or in combination and the functionality of the exampleimplementations can be implemented through any means according to thedesired implementations.

Example implementations described herein are directed to a machinelearning (ML) application system to forecast IO load. Such a systemincludes the method to search applicable ML models from an ML modelrepository. Another implementation can include ML application system forconducting other types of performance prediction, such as predicting CPUload, memory overhead and IO latency.

FIG. 1 illustrates a machine learning application system for forecast IOload, in accordance with an example implementation.

The searching function 100 retrieves container version information 101.The container version information includes the version identifier (ID)of the containers deployed on the corresponding storage systems andservers 120. The searching function 100 searches for the version ID inthe container version tree 102. In an example implementation, containerversion tree 102 can be a Git system, container image versioning systemlike docker engine or a DockerHub system, or otherwise in accordancewith the desired implementation. The searching function 100 searches theML model repository 104 for the ML model applicable to the containerusing container version-ML model mapping table 103. Each of the MLmodels in the ML model repository 104 are configured to provide IOpredictions, such as load IO or spike IO Each of the ML models aregenerated for a specific container version.

The searching function 100 outputs some ML model numbers to theapplication function of the ML model 110. The application function 110retrieves the ML model implementation from ML model repository 104 andstarts the ML model inference process.

Container version information 101 indicates the version of the containerimplemented or to be implemented in the storage systems and servers 120.Such information can include the version number and the application logduration indicating the amount of accumulated log data associated withthe version.

ML model ID searching function 100 searches for an ML model in the MLmodel repository 104 that corresponds with the container being utilizedor to be implemented in the storage systems and servers 120. Furtherdetails of the ML search function are provided in FIGS. 4 and 5.

Container version-ML model mapping table 103 maps the ML models in theML repository 104 to their respective container version. Based on thehistorical application logs, the container version-ML model mappingtable 103 derives the IO prediction accuracy through historicalanalysis. Depending on the desired implementation, container version-MLmodel mapping table 103 can also contain information regarding thecontainer log accumulation period, which indicates the amount ofapplication logs needed to generate an ML model for that particularcontainer version. Thus, if the model falls below a certain accuracylevel, then the model can be retrained and regenerated if there issufficient data in the application logs. Further, for a new containerversion, once the accumulated logs have reached the required period,then a new ML model can be generated for such a version. The value forthe container log accumulation period can be set manually or otherwisein accordance with the desired implementation.

FIG. 2 illustrates an example of an ML model predicting IO load, inaccordance with an example implementation. Specifically, FIG. 2illustrates how ML models predict IO load (e.g., such as spike IO) 202from a container log 201 (e.g. application event logs). IO prediction MLmodel 202 learns data regarding the IO load history 200 and containerlog 201 and determines correlations between events in the container logand occurrences of spike IO. In the example of FIG. 2, the container logindicating that a “version up” has been conducted is determined to becorrelated to a spike IO a few minutes later.

Once a prediction 202 is obtained, the predicted IO can be comparedagainst a threshold set in accordance with the desired implementation.If the IO exceeds the threshold, then the system can be configured toautomatically suppress application events within the container (e.g.,run container events on a lower thread priority, temporarily shut downother running applications, etc.). In another example implementation,the system can also allocate the appropriate resources (e.g., CPU,memory) in anticipation of the load IO exceeding a threshold. Such anexample implementation can be helpful for spike IO which involves atemporary spike in IO load on the system, which may be addressable bytemporarily allocating the appropriate resources.

There is a limitation in that each of the ML models may only beapplicable to one kind of container. Thus, there is a need for many MLmodels to predict IO load of some types of systems. There is a furtherneed to search the ML model applicable to each container. The system inFIG. 1 is used to search one ML model from many ML models in therepository efficiently.

FIG. 3 illustrates an example use case of the searching function, inaccordance with an example implementation. All container images aremanaged internally by version number and version tree as shown at 102.The ML searching function 300 can also go up and down the version tree102 gradually as shown at 301 and 302. When the distance betweenversions is short (e.g., one hop away), the internal operating system(OS) settings and application settings are similar, so the sudden IOload is similar. Through this concept, the number of IO load predictionmodels can be reduced to about 1/100 in comparison to the related art.After traversal of the version tree 102, an example search result couldbe that there is no ML model that corresponds to the version number ofthe container, but there is a model that is close based on the distanceof the version tree that is applicable as illustrated at 310.

FIG. 4 shows an example of the flow of the searching function, inaccordance with an example implementation. At 400, the searchingfunction 100 retrieves the container version ID as combined with thelogical unit. At 401, the searching function 100 checks if there is arelevant ML model (for explanation purposes, this process is labeled as‘X’). Process X involves, at 401, searching for the ML model having thecontainer version ID in the repository based on the mapping table. At402, a determination is made as to whether such a model exists for thecontainer version. If there is such a model (Yes), then a determinationis made that an ML model corresponding to the container version existsat 403, whereupon the ML model is applied to the server at 404.

If there is no ML model (No), then the searching function 100 determinesthat no ML model exists that corresponds to the container version at405. At 406 the searching function 100 then searches for the nearestversion ID on the version tree and repeats the process X at 408. If anearby ML model exists (Yes) then the ML searching function 100 proceedsto 408 whereupon the searching function 100 determines that a nearby MLmodel exists and applies the nearest ML model at 409.

Otherwise (No) if ML model is found, then the ML searching function 100repeats process X until the threshold judgement terminates the search at410. The threshold judgement is used for limiting the search process inaccordance with the desired implementation to prevent perpetualsearching. Thus, if the threshold judgment is not met (No) the processis repeated from 406 to traverse the version tree and determine anotherversion having a corresponding ML model that can be applicable.

If the threshold judgment is met (Yes), then a termination condition hasbeen met regarding the limitations of the search. Thus at 411, the MLsearching function 100 determines that there is no model that can beapplicable to the current container. At 412, the ML searching function100 initiates the process to being generating a new model.

FIG. 5 shows an example of the threshold judgement process, inaccordance with an example implementation. Specifically, FIG. 5illustrates an example of version distance based search and judgment byexpected accuracy of the ML model. Such judgement algorithms can beincorporated together or separately, in accordance with the desiredimplementation.

Version tree management 500 manages the version tree 102 by managing therelationship between different versions of the container. Asillustrated, each node in the tree contains information regarding theversion number, the contents, and the next connected node in the tree.In the example illustrated in FIG. 5, the versions correspond toContainer v7, Container v 8.1 and Container v8.2.

Container version-ML model mapping table 501 manages the relationshipbetween the container version, the ML model associated with thecontainer version, and the corresponding IO prediction accuracy for agiven container. Such information can be constructed in accordance withthe desired implementation, which can involve analysis based onhistorical data, can be manually provided, and so on in accordance withthe desired implementation. Such information is provided to the versiondistance based search 503, which will utilize the IO prediction accuracyto determine expected accuracy for the input container version.

Version diff effect 502 indicates the coefficient or weight that shouldbe applied between container versions. In the example of FIG. 5, modelsfor container version 7 have a coefficient of 0.5 when applied tocontainer versions 8 or later. Similarly, models for container version8.x have a coefficient of 0.9 when applied to other models havingcontainer version 8.x.

Version distance based search 503 is an iterative process that searchesfor the corresponding ML model to be applied to the input containerversion. If an ML model already exists, then that ML model is utilized.Otherwise, the version distance based search 503 will traverse theversion tree through using version tree management 500 to determineapplicable ML models.

Judgment by expected accuracy 504 determines the accuracy of anapplicable ML model extracted from version distance based search 503. MLmodels are selected based on the weighing as determined from thecontainer version-ML model mapping table 501 and version diff effect502. In an example implementation, an example judgment can be determinedfrom multiplying the ML model accuracy as determined from the containerversion-ML model mapping table 501 with the coefficient obtained fromthe version diff effect 502, and comparing the result to a presetthreshold. If the obtained model has a result that is less than theobtained value, then the ML model searching function 100 discontinuesthe search. Then, the ML model having the highest result can be providedas output.

In the example of FIG. 5, the search terminates when the ML model existsor the distance judgment as returned from expected accuracy 504 exceedsa threshold, however, other example implementations are also possibleand the present disclosure is not limited thereto. For example, if theML model corresponding to the container version has a predictionaccuracy that falls below the threshold, then a new model can beselected to replace the ML model and the ML model corresponding to thecontainer version can be retrained and regenerated. In such exampleimplementations, the ML models can be changed as needed if the accuracyfalls below the threshold.

In the example of FIG. 5, it is assumed that Container version #:53a**** is implemented on the server. The input provided to the ML modelsearching function 100 is container version #53a****. ML model searchingfunction 100 executes the version distance based search 503 to initiallysearch for an ML model corresponding to 53a****. From a search of theversion tree stored in version tree management 500, it is determinedthat no ML model exists for 53a****.

Accordingly, the version tree is traversed to neighboring nodes. At onehop away, there is a ML model corresponding for d8f*** found in theversion tree management 500, denoted as ML model #1. The expectedaccuracy is 50%*0.9=0.40, which is below the threshold in this example.As the ML model exceeds the threshold, another search is conducted, andthe next node in version tree is version a8a***, denoted as ML model #2.The expected accuracy is 90%*0.8=0.72, which exceeds the thresholdrequired. Thus, the ML model searching function terminates its search,and provides ML model #2 as the output for the container 53a****.

FIG. 6 illustrates an example computing environment with an examplecomputer device suitable for use in some example implementations.Computer device 605 in computing environment 600 can include one or moreprocessing units, cores, or processors 610, memory 615 (e.g., RAM, ROM,and/or the like), internal storage 620 (e.g., magnetic, optical, solidstate storage, and/or organic), and/or IO interface 625, any of whichcan be coupled on a communication mechanism or bus 630 for communicatinginformation or embedded in the computer device 605. IO interface 625 isalso configured to receive images from cameras or provide images toprojectors or displays, depending on the desired implementation.

Computer device 605 can be communicatively coupled to input/userinterface 635 and output device/interface 640. Either one or both ofinput/user interface 635 and output device/interface 640 can be a wiredor wireless interface and can be detachable. Input/user interface 635may include any device, component, sensor, or interface, physical orvirtual, that can be used to provide input (e.g., buttons, touch-screeninterface, keyboard, a pointing/cursor control, microphone, camera,braille, motion sensor, optical reader, and/or the like). Outputdevice/interface 640 may include a display, television, monitor,printer, speaker, braille, or the like. In some example implementations,input/user interface 635 and output device/interface 640 can be embeddedwith or physically coupled to the computer device 605. In other exampleimplementations, other computer devices may function as or provide thefunctions of input/user interface 635 and output device/interface 640for a computer device 605.

Examples of computer device 605 may include, but are not limited to,highly mobile devices (e.g., smartphones, devices in vehicles and othermachines, devices carried by humans and animals, and the like), mobiledevices (e.g., tablets, notebooks, laptops, personal computers, portabletelevisions, radios, and the like), and devices not designed formobility (e.g., desktop computers, other computers, information kiosks,televisions with one or more processors embedded therein and/or coupledthereto, radios, and the like).

Computer device 605 can be communicatively coupled (e.g., via IOinterface 625) to external storage 645 and network 650 for communicatingwith any number of networked components, devices, and systems, includingone or more computer devices of the same or different configuration.Computer device 605 or any connected computer device can be functioningas, providing services of, or referred to as a server, client, thinserver, general machine, special-purpose machine, or another label.

IO interface 625 can include, but is not limited to, wired and/orwireless interfaces using any communication or IO protocols or standards(e.g., Ethernet, 802.11x, Universal System Bus, WiMax, modem, a cellularnetwork protocol, and the like) for communicating information to and/orfrom at least all the connected components, devices, and network incomputing environment 600. Network 650 can be any network or combinationof networks (e.g., the Internet, local area network, wide area network,a telephonic network, a cellular network, satellite network, and thelike).

Computer device 605 can use and/or communicate using computer-usable orcomputer-readable media, including transitory media and non-transitorymedia. Transitory media include transmission media (e.g., metal cables,fiber optics), signals, carrier waves, and the like. Non-transitorymedia include magnetic media (e.g., disks and tapes), optical media(e.g., CD ROM, digital video disks, Blu-ray disks), solid state media(e.g., RAM, ROM, flash memory, solid-state storage), and othernon-volatile storage or memory.

Computer device 605 can be used to implement techniques, methods,applications, processes, or computer-executable instructions in someexample computing environments. Computer-executable instructions can beretrieved from transitory media, and stored on and retrieved fromnon-transitory media. The executable instructions can originate from oneor more of any programming, scripting, and machine languages (e.g., C,C++, C#, Java, Visual Basic, Python, Perl, JavaScript, and others).

Processor(s) 610 can execute under any operating system (OS) (notshown), in a native or virtual environment. One or more applications canbe deployed that include logic unit 660, application programminginterface (API) unit 665, input unit 670, output unit 675, andinter-unit communication mechanism 695 for the different units tocommunicate with each other, with the OS, and with other applications(not shown). The described units and elements can be varied in design,function, configuration, or implementation and are not limited to thedescriptions provided. Processor(s) 610 can be in the form of hardwareprocessors such as central processing units (CPUs) or in a combinationof hardware and software units.

In some example implementations, when information or an executioninstruction is received by API unit 665, it may be communicated to oneor more other units (e.g., logic unit 660, input unit 670, output unit675). In some instances, logic unit 660 may be configured to control theinformation flow among the units and direct the services provided by APIunit 665, input unit 670, output unit 675, in some exampleimplementations described above. For example, the flow of one or moreprocesses or implementations may be controlled by logic unit 660 aloneor in conjunction with API unit 665. The input unit 670 may beconfigured to obtain input for the calculations described in the exampleimplementations, and the output unit 675 may be configured to provideoutput based on the calculations described in example implementations.

As illustrated in FIGS. 1-5, processor(s) 610 can be configured tofacilitate the functionality of ML model ID searching function 100 andthe implementations as illustrated, and thus configured to determine,from a repository involving a plurality of machine learning (ML) models104, each of the plurality of ML models configured to conductperformance prediction, a ML model from the plurality of ML models toconduct the performance prediction for a container implemented on aserver, the determining the ML model involving searching the repositorybased on a version tree of the container through ML model ID searchingfunction 100; and executing the ML model from the plurality of ML modelsto conduct the performance prediction for the container implemented inthe server as illustrated in FIG. 4.

As illustrated in FIG. 2, the performance prediction can involveprediction of spike IO, wherein the ML models are configured to conductperformance prediction through predicting spike M.

Processor(s) 610 can be configured to search the repository based on theversion tree of the container by, for the searching being indicative ofthere being no ML model corresponding to a version of the container inthe repository as shown at 402 and 405 of FIG. 4, searching therepository for ones of the plurality of ML models having a differentversion of the container based on traversing the version tree of thecontainer as shown at 406 of FIG. 4 and FIG. 5, and selecting one ormore of the plurality of ML models based on a distance from the versionof the container implemented in the server determined from thetraversing of the version tree of the container as shown at 410 of FIG.4 and FIG. 5.

As illustrated at 504 of FIG. 5, processor(s) 610 can be configured toselect the one or more of the plurality of ML models by estimating an 10prediction accuracy based on the distance from the version of thecontainer, and selecting the one or more of the plurality of ML modelshaving an accuracy above a threshold.

Depending on the desired implementation, processor(s) 610 can furtherconfigured to, for a prediction accuracy of the executed ML modelfalling below a threshold, changing the executed ML model throughconducting another search of the repository as illustrated at 504 ofFIG. 5; and for the container accumulating a log for a preset period oftime and for the prediction accuracy of the executed ML model fallingbelow the threshold, generating an ML model configured for performanceprediction corresponding to the version of the container as illustratedin FIG. 1.

Processor(s) 610 can also be configured to, for the executed ML modelpredicting an IO load meeting a threshold, suppressing applicationevents on the server as illustrated in FIG. 2.

Some portions of the detailed description are presented in terms ofalgorithms and symbolic representations of operations within a computer.These algorithmic descriptions and symbolic representations are themeans used by those skilled in the data processing arts to convey theessence of their innovations to others skilled in the art. An algorithmis a series of defined steps leading to a desired end state or result.In example implementations, the steps carried out require physicalmanipulations of tangible quantities for achieving a tangible result.

Unless specifically stated otherwise, as apparent from the discussion,it is appreciated that throughout the description, discussions utilizingterms such as “processing,” “computing,” “calculating,” “determining,”“displaying,” or the like, can include the actions and processes of acomputer system or other information processing device that manipulatesand transforms data represented as physical (electronic) quantitieswithin the computer system's registers and memories into other datasimilarly represented as physical quantities within the computersystem's memories or registers or other information storage,transmission or display devices.

Example implementations may also relate to an apparatus for performingthe operations herein. This apparatus may be specially constructed forthe required purposes, or it may include one or more general-purposecomputers selectively activated or reconfigured by one or more computerprograms. Such computer programs may be stored in a computer readablemedium, such as a computer-readable storage medium or acomputer-readable signal medium. A computer-readable storage medium mayinvolve tangible mediums such as, but not limited to optical disks,magnetic disks, read-only memories, random access memories, solid statedevices and drives, or any other types of tangible or non-transitorymedia suitable for storing electronic information. A computer readablesignal medium may include mediums such as carrier waves. The algorithmsand displays presented herein are not inherently related to anyparticular computer or other apparatus. Computer programs can involvepure software implementations that involve instructions that perform theoperations of the desired implementation.

Various general-purpose systems may be used with programs and modules inaccordance with the examples herein, or it may prove convenient toconstruct a more specialized apparatus to perform desired method steps.In addition, the example implementations are not described withreference to any particular programming language. It will be appreciatedthat a variety of programming languages may be used to implement theteachings of the example implementations as described herein. Theinstructions of the programming language(s) may be executed by one ormore processing devices, e.g., central processing units (CPUs),processors, or controllers.

As is known in the art, the operations described above can be performedby hardware, software, or some combination of software and hardware.Various aspects of the example implementations may be implemented usingcircuits and logic devices (hardware), while other aspects may beimplemented using instructions stored on a machine-readable medium(software), which if executed by a processor, would cause the processorto perform a method to carry out implementations of the presentapplication. Further, some example implementations of the presentapplication may be performed solely in hardware, whereas other exampleimplementations may be performed solely in software. Moreover, thevarious functions described can be performed in a single unit, or can bespread across a number of components in any number of ways. Whenperformed by software, the methods may be executed by a processor, suchas a general purpose computer, based on instructions stored on acomputer-readable medium. If desired, the instructions can be stored onthe medium in a compressed and/or encrypted format.

Moreover, other implementations of the present application will beapparent to those skilled in the art from consideration of thespecification and practice of the teachings of the present application.Various aspects and/or components of the described exampleimplementations may be used singly or in any combination. It is intendedthat the specification and example implementations be considered asexamples only, with the true scope and spirit of the present applicationbeing indicated by the following claims.

What is claimed is:
 1. A method, comprising: determining, from arepository comprising a plurality of machine learning (ML) models, eachof the plurality of ML models configured to conduct performanceprediction, a ML model from the plurality of ML models to conduct theperformance prediction for a container implemented on a server, thedetermining the ML model comprising searching the repository based on aversion tree of the container; and executing the ML model from theplurality of ML models to conduct the performance prediction for thecontainer implemented in the server.
 2. The method of claim 1, whereinthe performance prediction comprises prediction of spike IO, wherein theML models are configured to conduct performance prediction throughpredicting spike IO.
 3. The method of claim 1, wherein the searching therepository based on the version tree of the container comprises: for thesearching being indicative of there being no ML model corresponding to aversion of the container in the repository, searching the repository forones of the plurality of ML models having a different version of thecontainer based on traversing the version tree of the container, andselecting one or more of the plurality of ML models based on a distancefrom the version of the container implemented in the server determinedfrom the traversing of the version tree of the container.
 4. The methodof claim 3, wherein the selecting the one or more of the plurality of MLmodels comprises estimating an IO prediction accuracy based on thedistance from the version of the container, and selecting the one ormore of the plurality of ML models having an accuracy above a threshold.5. The method of claim 1, further comprising: for a prediction accuracyof the executed ML model falling below a threshold, changing theexecuted ML model through conducting another search of the repository;and for the container accumulating a log for a preset period of time andfor the prediction accuracy of the executed ML model falling below thethreshold, generating an ML model configured for performance predictioncorresponding to the version of the container.
 6. The method of claim 1,further comprising, for the executed ML model predicting an IO loadmeeting a threshold, suppressing application events on the server.
 7. Anon-transitory computer readable medium, storing instructions forexecuting a process, the instructions comprising: determining, from arepository comprising a plurality of machine learning (ML) models, eachof the plurality of ML models configured to conduct performanceprediction, a ML model from the plurality of ML models to conduct theperformance prediction for a container implemented on a server, thedetermining the ML model comprising searching the repository based on aversion tree of the container; and executing the ML model from theplurality of ML models to conduct the performance prediction for thecontainer implemented in the server.
 8. The non-transitory computerreadable medium of claim 7, wherein the performance prediction comprisesprediction of spike IO, wherein the ML models are configured to conductperformance prediction through predicting spike IO.
 9. Thenon-transitory computer readable medium of claim 7, wherein thesearching the repository based on the version tree of the containercomprises: for the searching being indicative of there being no ML modelcorresponding to a version of the container in the repository, searchingthe repository for ones of the plurality of ML models having a differentversion of the container based on traversing the version tree of thecontainer, and selecting one or more of the plurality of ML models basedon a distance from the version of the container implemented in theserver determined from the traversing of the version tree of thecontainer.
 10. The non-transitory computer readable medium of claim 9,wherein the selecting the one or more of the plurality of ML modelscomprises estimating an IO prediction accuracy based on the distancefrom the version of the container, and selecting the one or more of theplurality of ML models having an accuracy above a threshold.
 11. Thenon-transitory computer readable medium of claim 7, the instructionsfurther comprising: for a prediction accuracy of the executed ML modelfalling below a threshold, changing the executed ML model throughconducting another search of the repository; and for the containeraccumulating a log for a preset period of time and for the predictionaccuracy of the executed ML model falling below the threshold,generating an ML model configured for performance predictioncorresponding to the version of the container.
 12. The non-transitorycomputer readable medium of claim 7, the instructions furthercomprising, for the executed ML model predicting an IO load meeting athreshold, suppressing application events on the server.
 13. A server,comprising: a processor, configured to: determine, from a repositorycomprising a plurality of machine learning (ML) models, each of theplurality of ML models configured to conduct performance prediction, aML model from the plurality of ML models to conduct the performanceprediction for a container implemented on the server, by searching therepository based on a version tree of the container; and execute the MLmodel from the plurality of ML models to conduct the performanceprediction for the container implemented in the server.
 14. The serverof claim 13, wherein the performance prediction involves prediction ofspike IO, wherein the ML models are configured to conduct performanceprediction through predicting spike IO.
 15. The server of claim 13,wherein the processor is configured to search the repository based onthe version tree of the container by: for the searching being indicativeof there being no ML model corresponding to a version of the containerin the repository, searching the repository for ones of the plurality ofML models having a different version of the container based ontraversing the version tree of the container, and selecting one or moreof the plurality of ML models based on a distance from the version ofthe container implemented in the server determined from the traversingof the version tree of the container.
 16. The server of claim 15,wherein the processor is configured to select the one or more of theplurality of ML models by estimating an IO prediction accuracy based onthe distance from the version of the container, and selecting the one ormore of the plurality of ML models having an accuracy above a threshold.17. The server of claim 13, the processor further configured to: for aprediction accuracy of the executed ML model falling below a threshold,change the executed ML model through conducting another search of therepository; and for the container accumulating a log for a preset periodof time and for the prediction accuracy of the executed ML model fallingbelow the threshold, generate an ML model configured for performanceprediction corresponding to the version of the container.
 18. The serverof claim 13, the processor configured to, for the executed ML modelpredicting an IO load meeting a threshold, suppress application eventson the server.